package com.project.common.filter;


import com.project.common.orderby.OrderPattern;

import java.io.Serializable;

public interface Filter<K extends Serializable, F extends Filter<K, F>> {
    F withKey(K key);

    F distinct();

    F and(Criterion criterion);

    F or(Criterion criterion);

    F andNew();

    F orNew();

    F endNew();

    void reset();

    F orderBy(OrderPattern orderPattern);
}
